PHP中数字检测 is_numeric 与 ctype_digit 的区别介绍

PHP中的两个函数is_numeric和ctype_digit都是检测字符串是否是数字,但也存在一点区别
is_numeric:检测是否为数字字符串,可为负数和小数
ctype_digit:检测字符串中的字符是否都是数字,负数和小数会检测不通过
注意,参数一定要是字符串,如果不是字符串,则会返回0/FASLE
下面是测试例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$a = 0001111222 ; 
var_dump($a);
var_dump(is_numeric($a)); //true
var_dump(ctype_digit($a)); //true
$a = 0.1 ;
var_dump($a);
var_dump(is_numeric($a)); //true
var_dump(ctype_digit($a)); //false
$a = -1 ;
var_dump($a);
var_dump(is_numeric($a)); //true
var_dump(ctype_digit($a)); //false
$a = 'a' ;
var_dump($a);
var_dump(is_numeric($a)); //false
var_dump(ctype_digit($a)); //false